//待补充
$NG.AllReady(function (
	page,
	{ useDataIndexChange, useUpdateRow, useUpdateRows, useValuesChange }
) {
	const userInfo = $NG.getUser();

	// 编辑页面逻辑
	const mstform = $NG.getCmpApi("p_form_procurement_spare_m");
	const grid1 = $NG.getCmpApi("p_form_procurement_spare_d");
	const getItemValue = (itemName) => mstform.getItem(itemName).getValue();
	/**
	 *@default: 初始化
	 */
	if ($NG.getCmpApi("p_form_procurement_spare_m")) {
		getPtInfoByPhid();

		$NG.updateState((updater) => {
			updater.data.p_form_procurement_spare_m.setProps({
				phid_fcur: {
					value: 1,
					label: "人民币",
				},
				exchangerate: 1,
			});
		});

		console.log(userInfo.userID);

		$NG.execServer("GETuserdept", { phid: userInfo.userID }, (res) => {
			const datas = JSON.parse(res.data)[0].extendObjects;
			console.log(datas, "GETuserdeptdatas");
			$NG.updateState((updater) => {
				updater.data.p_form_procurement_spare_m.setProps({
					u_applicant: {
						value: userInfo.userID,
						label: userInfo.userName,
					},
					u_apply_dept: {
						value: datas.dept_id,
						label: datas.deptname,
					},
				});
			});
		});
	}
	/**
	 *@license: 	 //表头字段变化逻辑END	//表头字段变化逻辑BEGIN
	 */
	useValuesChange(async ({ args }) => {
		getPtInfoByPhid();
        const _arr = grid1.getRows()
        const _json = []
        _arr.forEach(item=>{
            if(!item.u_cost_pc){
                _json.push({
                    u_entity:mstform.getItem("u_budget_org").getValue(),
                    u_account: args[0].u_cost_pc_EXName,
                    phid_fcur:mstform.getItem("phid_fcur").getValue()
                })
            }
        })
        const _data = {
            billType:"WKSD",
                phid_pc:mstform.getItem("phid_pc").getValue(),
                bill_dt:mstform.getItem("bill_dt").getValue(),
                detail:_json
        }
        //  请求得到的数据
        const resBody = await reqAmt(_data)
        // TODO
        _arr.forEach(item=>{
            if(item.u_cost_pc){
                //TODO 在请求数据中查找并找到相应的数据进行对字段赋值
            }
        })
	}, "p_form_procurement_spare_m.phid_pc");

	/**
	 *@function:带出项目信息
	 */
	function getPtInfoByPhid() {
		if (mstform.getItem("phid_pc").getValue()) {
			$NG.execServer(
				"getPtInfoByPhid",
				{ phid: mstform.getItem("phid_pc").getValue() },
				function (res) {
					const datas = JSON.parse(res.data)[0].extendObjects;
					console.log(datas, "11111111111");
					//帮助字段赋值
					$NG.updateState((updater) => {
						updater.data.p_form_procurement_spare_m.setProps({
							// u_supply_att: datas.u_supply_att, //计划完工日期
							// u_supply_name: datas.u_supply_name, //计划竣工日期
							bill_no: datas.pc_no, //项目编码
							u_dept: {
								value: datas.dept_phid,
								label: datas.dept_name,
							},
							u_division: {
								//事业部or组织
								value: datas.org_phid,
								label: datas.org_name,
							},

							u_regional_center: {
								//区域中心
								value: datas.regional_center_phid,
								label: datas.regional_center_name,
							},
							u_product_line: {
								//产品线
								value: datas.midwife_phid,
								label: datas.midwife_name,
							},
                            u_budget_org:datas.budget_org_no
						});
					});
				}
			);
		}
	}
	/**
	 *@function:计算逻辑
	 */
	useUpdateRow(({ args }) => {
		console.log(args[0], "分包明细表 计算");
		let row = args[0];
       
		computedV2(row);
		// 更新和刷新表格
		grid1.refreshView();
	}, "p_form_procurement_spare_d");
	useUpdateRows(({ args }) => {
		let rows = args[0];
		let total = 0;

		rows.forEach((element) => {
			total += element.u_amt_vat || 0; // 确保值存在且为数字
		});
		mstform.getItem("u_amt_vat").setValue(total);
		console.log("Total u_amt_vat:", total);

		// 更新和刷新表格
	}, "p_form_procurement_spare_d");
    // TODO 单行更改触发请求，赋值到金额
    useDataIndexChange(({args})=>{
        if(args[0].u_cost_pc_EXName&&mstform.getItem("phid_pc").getValue()){
            const _maps = {
                billType:"WKSD",
                phid_pc:mstform.getItem("phid_pc").getValue(),
                bill_dt:mstform.getItem("bill_dt").getValue(),
                detail:[{
                    u_entity:mstform.getItem("u_budget_org").getValue(),
                    u_account: args[0].u_cost_pc_EXName,
                    phid_fcur:mstform.getItem("phid_fcur").getValue()
                }]
            }
            reqAmt(_maps)
        }
    },"u_cost_pc")

    

	function computedV2(rowItem) {
		const record = rowItem;

		// 提供默认值并确保为数字类型，防止字符串影响计算
		const u_qty = Number(record.u_qty) || 0; // 数量，默认为 0
		const u_vat_prc = Number(record.u_vat_prc) || 0; // 含税单价，默认为 0
		const u_tax_rate = Number(record.u_tax_rate) || 0; // 税率，默认为 0

		// 计算不含税单价
		const u_prc = u_vat_prc / (1 + u_tax_rate);

		// 计算字段值
		const u_amt_vat = u_qty * u_vat_prc; // 价税合计
		const u_amt = u_qty * u_prc; // 不含税金额
		const u_tax_amt = u_amt_vat - u_amt; // 税额
		const u_amt_vat_fc = u_amt_vat; // 价税合计（与 u_amt_vat 相同）

		// 更新 record 对象
		Object.assign(record, {
			u_prc,
			u_amt_vat,
			u_amt,
			u_tax_amt,
			u_amt_vat_fc,
		});
	}
    async function reqAmt(datas){
        console.log(`请求参数检查`,datas);
        const resBody = await $NG.request.post({
            url:'http://nginx.clouddev.hisense.com/sd/sdToFi/fiIntegration/fiCheckBalance',
            data:JSON.stringify(datas),
            header:{
                "Content-Type":"application/json",
            }
        })
        console.log(`响应信息`,resBody);
    }
});
